package com.lxl.miaosha.config;

import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.DirectExchange;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


@Configuration
public class DirectConfig {

    //队列 起名：MiaoshaQueue
    @Bean
    public Queue MyDirectQueue() {
        //创建一个队列，第一个参数是队列名称，第二个参数表示是否持久化队列
        //持久化队列会被存储在磁盘上，当消息代理重启时仍然存在，如果是false则是暂存队列，当前连接有效
        return new Queue("MiaoshaQueue",true);
    }



    //Direct交换机 起名：MiaoshaExchange
    @Bean
    DirectExchange MyDirectExchange() {
        return new DirectExchange("MiaoshaExchange",true,false);
        //第三个参数autoDelete,表示是否自动删除，当没有生产者或者消费者使用此队列，该队列会自动删除
    }

    //绑定  将队列和交换机绑定, 并设置用于路由键：MiaoshaRouting
    @Bean
    Binding bindingDirect() {
        return BindingBuilder.bind(MyDirectQueue()).to(MyDirectExchange()).with("MiaoshaRouting");
    }


}

